/*完成下列任务：
    1)在p4-module.js中加上用户类CUser，其有属性用户名，exports之。
    2）在本文件中引入用户类，实例化一个对象,其用户名为：lyshsd
    3) 监听一个“用户注册“事件，在用户注册事件响应函数中，创建目录,目录名使用注册用户的名字。用户lyshsd来注册，用emit触发”用户注册“事件。
    4）监听一个”用户更新购物车“事件，在响应函数中，把购物车数据写入：用户名/cart.txt。触发事件。
    5）监听一个”用户读取购物车“事件，在响应函数中，读取用户名目录下的cart.txt，并在终端输出（console.log)。触发事件。
    6）监听一个”彻底删除用户“事件，在响应函数中，删除用户文件夹所有内容及用户目录。触发事件。
*/

let className = require("./p4-module")
let fs = require('fs')
let CN = new className.CUser("lyshsd")
let e = require("events");
let eEmitter = new e.EventEmitter();

//创建目录
eEmitter.addListener("创建目录", creat)

function creat() {
    fs.mkdir(CN.用户名, function() {})
}
eEmitter.emit("创建目录")

//更新购物车
eEmitter.addListener("更新购物车", renew)

function renew() {
    fs.readFile("lyshsd.txt", "utf8", (_, data) => {
        fs.writeFile(CN.用户名 + "/cart.txt", data, "utf8", () => {
            console.log("用户更新了购物车，cart.txt创建成功");
        })
    })
}
eEmitter.emit("更新购物车")

//读取购物车
eEmitter.addListener("用户读取购物车", readCar)

function readCar() {
    fs.readFile('./lyshsd/cart.txt', 'utf8', (_, data) => {

        console.log(data)
    })
}
eEmitter.emit("用户读取购物车")

//彻底删除用户



eEmitter.addListener("删除所有文件", del)

function del() {
    var files = fs.readdirSync(CN.用户名); //读取该文件夹

    files.forEach(function(file) {

        var stats = fs.statSync(CN.用户名 + '/' + file);

        if (stats.isDirectory()) {

            emptyDir(CN.用户名 + '/' + file);

        } else {

            fs.unlinkSync(CN.用户名 + '/' + file);

            console.log("删除文件" + CN.用户名 + '/' + file + "成功");

        }

    })
}
eEmitter.emit("删除所有文件")

eEmitter.addListener("删除用户目录", delFile)

function delFile() {
    fs.rmdir(CN.用户名, function() {
        console.log("删除目录成功")
    })
}
eEmitter.emit("删除用户目录")